/**
 * @description: 自定义插件
 */

// 引入项目中全部的全局组件
import Pagination from '@/components/Pagination/index.vue'
import SvgIcon from '@/components/SvgIcon/index.vue'
import Category from '@/components/Category/index.vue'

// 引入 element-plus 的全部图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

// 定义全局对象
const allGlobalComponents: any = {
  SvgIcon: SvgIcon,
  Pagination: Pagination,
  Category: Category,
}

// 对外暴露插件对象
export default {
  // 务必叫做 install 方法
  install(app: any) {
    // 注册项目全部的全局组件
    Object.keys(allGlobalComponents).forEach((key) => {
      // 注册为全局组件
      app.component(key, allGlobalComponents[key])
    })
    // 将 ElementPlus 的图标注册为全局组件
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
      app.component(key, component)
    }
  },
}
